1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to computer system development, verification and testing.
2. Background
Today, computer systems are often designed and developed using a variety of software tools. These software tools often include diagnostic/testing programs that verify and test the functionality, and simulators that simulate the operation, of the computer systems being developed. The diagnostic/testing programs are executed using the. simulators. Since a simulator simulates the operation of a computer system, it is necessary that the simulator be specifically implemented for the particular computer system. Generally, except for unique functions, it is not necessary for the diagnostic/testing programs to be specifically implemented for a computer system. Nevertheless, because diagnostic/testing programs are often designed to interface directly with a particular simulator, as a result, they are often tightly coupled to a particular specifically implemented simulator. The diagnostic/testing programs would be tailored to a specific protocol for providing inputs representative of hardware signals to the simulator, a specific manner of synchronizing their own execution with the specific manner hardware signal processing are simulated by the simulator, and a specific protocol for receiving outputs representative of the replying hardware signals presented by the simulator. Thus, it is often difficult to port the diagnostic/testing programs used for the development of one computer system, and reuse them for the development of another computer system.
Additionally, due to the extensive nature of a computer system and the overhead required to execute code to simulate the same, computer-based simulation is inherently slow. Thus, the execution of these traditional diagnostic/testing programs that are tightly coupled to a particular simulation is also inevitably slow.